package main

import "fmt"

/*
*
  - 值传递 vs 引用传递

Go 中的切片是一个引用类型，但它内部存储的元素是值类型（如 int）。range 遍历时，

	返回的是元素的值拷贝，而不是引用。如果需要修改原始切片中的值，
	必须通过索引直接访问。
*/
func main() {
	myslice := []int{1, 2, 3, 4, 5}
	// range是值传递，并不会改制
	for _, value := range myslice {
		value *= 2
	}
	fmt.Printf("mySilce %v\n", myslice)
	// 通过下标，可以修改
	for index, _ := range myslice {
		myslice[index] *= 2
	}
	fmt.Printf("mySilce %v\n", myslice)
}
